package grafica.jugador.ventanas;

import grafica.jugador.controladores.ControladorDistribuir;
import grafica.moderador.ventanas.VentanaIniciarPartida;
import grafica.moderador.ventanas.VentanaNuevaPartida;

import javax.swing.JDialog;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import javax.swing.JLabel;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTextPane;

public class Distribuir {

	private JDialog jDialogDistibuir = null;  //  @jve:decl-index=0:visual-constraint="45,35"
	private JPanel jContentPaneDistibuir = null;
	private JPanel jPanel = null;
	private JLabel jLabel = null;
	private JTextField jTextFieldCantFichas = null;
	private JButton jButtonCancelar = null;
	private JButton jButtonAceptar = null;
	private ControladorDistribuir controladorDistribuir;
	private String nomJugador;
	private String nomPDest;
	private JLabel jLabel1 = null;
	private JLabel jLabelInfo = null;
	
	public Distribuir(String nomJugador, String nomPDest, PanelJugador panelJugador){
//		controladorDistribuir = new ControladorDistribuir(this, panelJugador);
		controladorDistribuir = new ControladorDistribuir(this);
		this.nomJugador=nomJugador;
		this.nomPDest=nomPDest;
		}
	
	/**
	 * This method initializes jDialogDistibuir	
	 * 	
	 * @return javax.swing.JDialog	
	 */
	private JDialog getJDialogDistibuir() {
		if (jDialogDistibuir == null) {
			jDialogDistibuir = new JDialog();
			jDialogDistibuir.setSize(new java.awt.Dimension(340,235));
			jDialogDistibuir.setContentPane(getJContentPaneDistibuir());
			jDialogDistibuir.setModal(true); 
			jDialogDistibuir.setLocationRelativeTo(null);
			jDialogDistibuir.setTitle("Distribuir fichas en "+nomPDest);
			jDialogDistibuir.setResizable (false);
		}
		return jDialogDistibuir;
	}

	/**
	 * This method initializes jContentPaneDistibuir	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJContentPaneDistibuir() {
		if (jContentPaneDistibuir == null) {
			jLabelInfo = new JLabel();
			jLabelInfo.setText("");
			jLabelInfo.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 10));
			jLabelInfo.setPreferredSize(new java.awt.Dimension(38,35));
			jContentPaneDistibuir = new JPanel();
			jContentPaneDistibuir.setLayout(new BorderLayout());
			jContentPaneDistibuir.add(jLabelInfo, java.awt.BorderLayout.SOUTH);
			jContentPaneDistibuir.add(getJPanel(), java.awt.BorderLayout.CENTER);
		}
		return jContentPaneDistibuir;
	}

	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel() {
		if (jPanel == null) {
			jLabel1 = new JLabel();
			jLabel1.setText("");
			FlowLayout flowLayout = new FlowLayout();
			flowLayout.setHgap(25);
			flowLayout.setVgap(45);
			jLabel = new JLabel();
			jLabel.setText("Cantidad de Fichas a Distribuir");
			jLabel.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD, 12));
			jPanel = new JPanel();
			jPanel.setPreferredSize(new java.awt.Dimension(492,55));
			jPanel.setLayout(flowLayout);
			jPanel.add(jLabel, null);
			jPanel.add(getJTextFieldCantFichas(), null);
			jPanel.add(getJButtonAceptar(), null);
			jPanel.add(getJButtonCancelar(), null);
			jPanel.add(jLabel1, null);
		}
		return jPanel;
	}

	/**
	 * This method initializes jTextFieldCantFichas	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextFieldCantFichas() {
		if (jTextFieldCantFichas == null) {
			jTextFieldCantFichas = new JTextField();
			jTextFieldCantFichas.setPreferredSize(new java.awt.Dimension(50,22));
			//Solo permite ingresar valores numericos
			jTextFieldCantFichas.addKeyListener(new KeyAdapter() {
				public void keyTyped (KeyEvent e){
				char caracter = e.getKeyChar();
				// Verificar si la tecla pulsada no es un digito
				if(((caracter < '0') ||
				(caracter > '9')) &&
				(caracter != KeyEvent.VK_BACK_SPACE))
				{
				e.consume(); // ignorar el evento de teclado
				}
				}
				});
		}
		return jTextFieldCantFichas;
	}
	public String getCantidadFichas(){
		return jTextFieldCantFichas.getText();
	}

	/**
	 * This method initializes jButtonCancelar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButtonCancelar() {
		if (jButtonCancelar == null) {
			jButtonCancelar = new JButton();
			jButtonCancelar.setPreferredSize(new java.awt.Dimension(90,25));
			jButtonCancelar.setText("Cancelar");
			
			ActionListener BotonCancelar = new ActionListener(){
				public void actionPerformed (ActionEvent e){ 
					jDialogDistibuir.dispose(); 
					//System.exit(0); 
				}
			};
	
			jButtonCancelar.addActionListener(BotonCancelar );
		}
		return jButtonCancelar;
	}

	/**
	 * This method initializes jButtonAceptar	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButtonAceptar() {
		if (jButtonAceptar == null) {
			jButtonAceptar = new JButton();
			jButtonAceptar.setPreferredSize(new java.awt.Dimension(90,25));
			
			jButtonAceptar.setText("Aceptar");
			ActionListener BotonAceptar = new ActionListener(){
				public void actionPerformed (ActionEvent e){	
					String cantFichas = jTextFieldCantFichas.getText();					
					controladorDistribuir.DistribuirFichas(nomJugador, nomPDest, Integer.parseInt(cantFichas));
//					jDialogDistibuir.dispose();
				}
			};
			jButtonAceptar.addActionListener(BotonAceptar);
			
		}
		return jButtonAceptar;
	}
	
	public void setVisible (boolean b)	{	
		getJDialogDistibuir().setVisible(b);
}
	public void setJLabelInfo(String info){
		jLabelInfo.setText(info);
	}
	
	public void dispose(){
		jDialogDistibuir.dispose();
	}
}
